package whf.framework.meta.entity;

import whf.framework.entity.Entity;
import whf.framework.meta.Metaable;

/**
 * @author wanghaifeng
 *
 */
@SuppressWarnings("unchecked")
public abstract interface IProperty extends Entity, IWriteonlyProperty, IReadonlyProperty, Metaable {

	/**
	 * @return property name
	 */
	public String getName();
	
	public void setName(String name);
	
	/**
	 * @return display max length, if length of words more than this, cut it
	 * 显示属性的最大长度
	 */
	public int getDisplayMaxLength() ;

	public void setDisplayMaxLength(int displayMaxLength) ;

	/**
	 * @return is primary key
	 */
	public boolean isPrimaryKey();

	public void setPrimaryKey(boolean primaryKey) ;

	//数据库列名
	/**
	 * @return mapping column name in db
	 */
	public String getDbColumnName() ;

	public void setDbColumnName(String dbColumnName) ;
	
	//排序
	/**
	 * @return the display order
	 */
	public int getSortOrder();
	
	public void setSortOrder(int order);
	//
	public Class getDataTypeClass();
	
	public boolean isPrimitive();
	
	public String getHelpContent();
	
	public void setHelpContent(String helpContent);
}
